﻿//==============================================================================
// File: PropertyChangedEventArgs.cs
// Created: 2010-05-10
// Author: Piotr Włodek
//==============================================================================
// This file is a part of MAMMOTH project.
// Copyright (C) 2010 AGH University of Science and Technology, Krakow.
// https://caribou.iisg.agh.edu.pl/trac/mammoth
//
// Mammoth is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// 
// Mammoth is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Lesser General Public License for more details.
// 
// You should have received a copy of the GNU Lesser General Public License
// along with WpfRcp. If not, see http://www.gnu.org/licenses/.
//==============================================================================

namespace WpfRcp.PropertyModel
{
    /// <summary>
    /// Represents arguments for the <see cref="PropertyChangedCallback"/> callback.
    /// </summary>
    public struct PropertyChangedEventArgs
    {
        internal PropertyChangedEventArgs(object oldValue, object newValue, MetaProperty property) : this()
        {
            OldValue = oldValue;
            NewValue = newValue;
            Property = property;
        }

        /// <summary>
        /// Gets old value of a property.
        /// </summary>
        public object OldValue { get; private set; }

        /// <summary>
        /// Gets a new value of a property.
        /// </summary>
        public object NewValue { get; private set; }

        /// <summary>
        /// Gets a property that has changed.
        /// </summary>
        public MetaProperty Property { get; private set; }
    }
}